package pe.com.bbva.harecService;

import java.rmi.RemoteException;

import pe.com.grupobbva.harecservice.BodyRq;
import pe.com.grupobbva.harecservice.DatosGeneralesXPersonaRq;
import pe.com.grupobbva.harecservice.HarecServiceStub;
import pe.com.grupobbva.harecservice.HeadRq;
import pe.com.grupobbva.harecservice.ObtenerDatosXPersonaDocument;
import pe.com.grupobbva.harecservice.ObtenerDatosXPersonaResponseDocument;

public class HarecService 
{
	
	private String url="";
	private Long timeOut=null;
	
    public void setUrl(String url) {
		this.url = url;
	}
    
	public void setTimeOut(Long timeOut) {
		this.timeOut = timeOut;
	}
	
	public ObtenerDatosXPersonaResponseDocument obtenerDatosPorDocumento(String usuario, String tipoDoi, String nroDoi) throws RemoteException{
		HarecServiceStub harecServiceStub=null;
		
		harecServiceStub=new HarecServiceStub(url);
		
		if(timeOut!=null){
			harecServiceStub._getServiceClient().getOptions().setTimeOutInMilliSeconds(timeOut);
		}
		
		DatosGeneralesXPersonaRq datosGeneralesXPersonaRq = DatosGeneralesXPersonaRq.Factory.newInstance();
		HeadRq headRq = HeadRq.Factory.newInstance();
		BodyRq bodyRq = BodyRq.Factory.newInstance();
		datosGeneralesXPersonaRq.setHead(headRq);
		datosGeneralesXPersonaRq.setBody(bodyRq);		
		ObtenerDatosXPersonaDocument obtenerDatosXPersona = ObtenerDatosXPersonaDocument.Factory.newInstance(); 		
		obtenerDatosXPersona.setObtenerDatosXPersona(datosGeneralesXPersonaRq);		
		obtenerDatosXPersona.getObtenerDatosXPersona().getHead().setUsuario(usuario);		
		obtenerDatosXPersona.getObtenerDatosXPersona().getBody().setTipoDOI(tipoDoi);
		obtenerDatosXPersona.getObtenerDatosXPersona().getBody().setNroDOI(nroDoi);
		
		ObtenerDatosXPersonaResponseDocument obtenerDatosXPersonaResponseDocument = 
				harecServiceStub.ObtenerDatosXPersona(obtenerDatosXPersona);
		
		return obtenerDatosXPersonaResponseDocument;
		
	}
	
	public ObtenerDatosXPersonaResponseDocument obtenerDatosPorCentro(String usuario, String codigoCentral) throws RemoteException{
		HarecServiceStub harecServiceStub=null;
		
		harecServiceStub=new HarecServiceStub(url);
		
		if(timeOut!=null){
			harecServiceStub._getServiceClient().getOptions().setTimeOutInMilliSeconds(timeOut);
		}
		
		DatosGeneralesXPersonaRq datosGeneralesXPersonaRq = DatosGeneralesXPersonaRq.Factory.newInstance();
		HeadRq headRq = HeadRq.Factory.newInstance();
		BodyRq bodyRq = BodyRq.Factory.newInstance();
		datosGeneralesXPersonaRq.setHead(headRq);
		datosGeneralesXPersonaRq.setBody(bodyRq);		
		ObtenerDatosXPersonaDocument obtenerDatosXPersona = ObtenerDatosXPersonaDocument.Factory.newInstance(); 		
		obtenerDatosXPersona.setObtenerDatosXPersona(datosGeneralesXPersonaRq);		
		obtenerDatosXPersona.getObtenerDatosXPersona().getHead().setUsuario(usuario);
		obtenerDatosXPersona.getObtenerDatosXPersona().getBody().setCodigoCentral(codigoCentral);
		
		ObtenerDatosXPersonaResponseDocument obtenerDatosXPersonaResponseDocument = 
				harecServiceStub.ObtenerDatosXPersona(obtenerDatosXPersona);
		
		return obtenerDatosXPersonaResponseDocument;
	}
	
}
